The continual and rapid development of computers, computer software and related technology has revealed many problems in currently employed methods of distributing software. These problems are especially profound with respect to the distribution of software that is required to interact directly with the operating system of a computer, e.g., hardware related software such as printer drivers, etc. For example, since new versions of operating systems typically ship every 1.5 to 2 years while new models of hardware, e.g., printers, typically ship every month, it is unrealistic to expect vendors to wait until the release of a new or updated version of the operating system to have the software needed to support the operation of their hardware distributed as a component part of the operating system environment. Accordingly, hardware vendors have been forced to find other methods for distributing their hardware related software during those times between operating system releases.
A known method for distributing software is disclosed in commonly owned, pending U.S. patent application Ser. No. 08/641,087 U.S. Pat. No. 5,692,111, entitled "Automatic Installation Of Printers In A Distributed Environment", which is continuation of U.S. patent application Ser. No. 08/318,070 now abandoned filed Oct. 5, 1994 by Marby et al. and which is incorporated herein by reference in its entirety. In particular, the '087 application relates to the installation of a printer on a network client in a local area network which is performed in support of a point-and-print operation. The point-and-print capability allows a user to print on any printer available within the distributed network by merely selecting a printer and then requesting to print on that printer. The printer is installed by performing the steps of retrieving configuration software files from a network server that includes the target printer and automatically installing the retrieved software files on the network client. The retrieval and installation of the software files is performed transparently relative to the user of the network client.
While the system disclosed in the '087 application works for its intended purpose in implementations of local area networks, it is not intended to be used to distribute software in wide area networks such as the Internet. In particular, since the '087 application relates to a closed, local area network, the '087 application fails to address, among other things, problems associated with security, (e.g., software source verification, virus checking, etc.), the speed of data transmission, or platform incompatibilities which are known problems in wide area networks such as the Internet. Furthermore, it will be appreciated that, since such networks are closed, the only method available for initially placing the printer configuration software files on the network server (after which time the software files are available for downloading to the network clients) is the conventional method of manually installing the software files from a storage media such as a floppy disk, CD ROM, or the like. Accordingly, it is seen that this method provides no advantage to vendors who must still produce a large number of copies of their software on conventional storage media that then must be shipped to distributors and retailers for sale to the end user.
In commonly owned, pending U.S. patent application Ser. No. 08/634,390 entitled "Method For Identifying And Obtaining Computer Software From A Network Computer", filed on Apr. 18, 1996 by Slivka et al., which is incorporated herein by reference in its entirety, a method for distributing software in a wide area network such as the Internet is disclosed. In particular, the '390 application discloses an update service which automatically inventories the network client to determine if any of its resident software files are out-of-date and/or in need of maintenance updates. If it is determined that software updates are required, the network server automatically downloads the needed software files in a compressed form to the network client along with a secure software installation application. The installation application downloaded by the network server is provided to cause the automatic installation of the downloaded software files on the network client.
While the system disclosed in the '390 application works for its intended purpose, it also suffers from various disadvantages. For example, no method is provided for automatically determining the form of the platform of the network client. Therefore, time may be wasted downloading software files that are incompatible with the platform of the network server. Additionally, since the installation application is provided by the network server, there is also a risk that the installation application will not properly operate in connection with the particular platform of the network client, i.e., it will not execute, it will install the software files in the wrong memory locations, etc.
A further disadvantage found in the method described in the '390 application lies in the fact that, while the installation application is itself provided with a digital signature for use in providing a measure of security, the executable software files, i.e., the .EXE, .DLL and .DRV software files, downloaded from the network server are not provided with any means to individually check their source. This oversight subjects the network client to a risk of installing unverified individual executable software files which may contain code capable of corrupting the network client. This is especially a concern with respect to hardware related software which executes in the kernal mode of the operating system. As a result of these disadvantages, users generally continue to install software in the conventional manner, i.e., from purchased floppy disks, CD ROMs, etc. which, as discussed, is the method for software distribution least desired by vendors.
From the foregoing, it is seen that a need remains for an improved method by which vendors may distribute their software. In particular, a need exists for a method by which vendors may economically and efficiently distribute software which minimizes the need for vendors to suffer the monetary and time costs associated with manufacturing a large number of copies of the software on conventional storage media, shipping of the software to retailers, etc. It is further desirable for vendors to eliminate the various problems associated with utilizing a retailer which include, among other things, retailer price markups, relying on the retailer to promote and move the product, lack of retailer knowledge about the subject software, etc. Most importantly, it is evident that a need exists for a software distribution system that is trusted by end users and that can be implemented transparently on intranets and the Internet, contributing to the creation of a world wide distributed printing solution.